package com.fau.fm.service;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;

import com.fau.fm.entity.MedicalLogistics;
import com.fau.fm.entity.MedicalLogisticsStatistics;
import com.fau.fm.entity.MedicalOrderHasBackSection;
import com.fau.fm.entity.MedicalOrderHasReconciliation;
import com.fau.fm.entity.MedicalProductStatistics;
import com.fau.fm.util.Page;

/**
 * @desc 统计接口
 * @author dangjh
 * @datetime 2014年11月24日,下午3:37:03
 */
public interface IStatisticsManagerService {

	/**
	 * @desc 已对账订单查询
	 * @param map
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月24日,下午3:38:59
	 */
	public Page findAllOrderReconciliation(Map<String, Object> map, MedicalOrderHasReconciliation order);
	
	/**
	 * @desc 导出已选已对账订单信息
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月24日,下午7:33:21
	 */
	public Workbook selectedPage(MedicalOrderHasReconciliation order) throws Exception ;
	
	/**
	 * @desc 导出所有已对账订单信息
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月24日,下午7:34:44
	 */
	public Workbook allPage(MedicalOrderHasReconciliation order) throws Exception ;
	
	/**
	 * @desc 已回款订单查询
	 * @param map
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月24日,下午3:39:42
	 */
	public Page findAllOrderBackSection(Map<String, Object> map, MedicalOrderHasBackSection order);
	
	/**
	 * @desc 导出已选已回款订单信息
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月24日,下午7:33:21
	 */
	public Workbook selectedPage(MedicalOrderHasBackSection order) throws Exception ;
	
	/**
	 * @desc 导出所有已回款订单信息
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月24日,下午7:34:44
	 */
	public Workbook allPage(MedicalOrderHasBackSection order) throws Exception ;
	
	/**
	 * @desc 已对账订单统计
	 * @param map
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月25日,上午11:04:03
	 */
	public Page findAllOrderReconSta(Map<String, Object> map, MedicalOrderHasReconciliation order);
	
	/**
	 * @desc 已回款订单统计
	 * @param map
	 * @param order
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月25日,上午11:04:03
	 */
	public Page findAllOrderBackSectionSta(Map<String, Object> map, MedicalOrderHasBackSection order);
	
	/**
	 * @desc 导出选中订单已对账统计信息
	 * @param uids
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月25日,下午1:35:18
	 */
	public Workbook selectedReconPage(MedicalOrderHasReconciliation order) throws Exception ;
	
	/**
	 * @desc 导出所有订单已对账统计信息
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月25日,下午1:35:50
	 */
	public Workbook allReconPage(MedicalOrderHasReconciliation order) throws Exception ;
	
	/**
	 * @desc 导出选中订单已回款统计信息
	 * @param uids
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月25日,下午1:35:18
	 */
	public Workbook selectedSectionPage(MedicalOrderHasBackSection order) throws Exception ;
	
	/**
	 * @desc 导出所有订单已回款统计信息
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月25日,下午1:35:50
	 */
	public Workbook allSectionPage(MedicalOrderHasBackSection order) throws Exception ;
	
	/**
	 * @desc 物流公司业务统计
	 * @param map
	 * @param bean
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月25日,下午5:11:45
	 */
	public Page findAllLogistics(Map<String, Object> map, MedicalLogisticsStatistics bean);
	
	/**
	 * @desc 产品销售统计
	 * @param map
	 * @param bean
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月26日,上午9:04:29
	 */
	public Page findAllProducts(Map<String, Object> map, MedicalProductStatistics bean);
	
	/**
	 * @desc 查询物流公司集合
	 * @param hospitalId
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月26日,上午10:31:38
	 */
	public List<MedicalLogistics> findAllLogistics(String hospitalId);
	
}
